From b09b06b6de79b5bc818a27ef54ab59c3593ec3a4 Mon Sep 17 00:00:00 2001 From: Hollis Blanchard Date: Wed, 21 Mar 2007 17:02:59 -0500 Subject: [PATCH] [POWERPC][XEN] Fix "xc_core" build break. Untested but might work. Signed-off-by: Hollis Blanchard --- tools/libxc/Makefile | 1 + tools/libxc/xc_core.h | 2 + tools/libxc/xc_core_powerpc.c | 79 +++++++++++++++++++++++++++++++++++ tools/libxc/xc_core_powerpc.h | 57 +++++++++++++++++++++++++ 4 files changed, 139 insertions(+) create mode 100644 tools/libxc/xc_core_powerpc.c create mode 100644 tools/libxc/xc_core_powerpc.h diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index 6dc76ae782..3cb3b601c9 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -8,6 +8,7 @@ CTRL_SRCS-y := CTRL_SRCS-y += xc_core.c CTRL_SRCS-$(CONFIG_X86) += xc_core_x86.c CTRL_SRCS-$(CONFIG_IA64) += xc_core_ia64.c +CTRL_SRCS-$(CONFIG_POWERPC) += xc_core_powerpc.c CTRL_SRCS-y += xc_domain.c CTRL_SRCS-y += xc_evtchn.c CTRL_SRCS-y += xc_misc.c diff --git a/tools/libxc/xc_core.h b/tools/libxc/xc_core.h index 5b1c9b5a33..90d333a05a 100644 --- a/tools/libxc/xc_core.h +++ b/tools/libxc/xc_core.h @@ -144,6 +144,8 @@ int xc_core_arch_map_p2m(int xc_handle, xc_dominfo_t *info, # include "xc_core_x86.h" #elif defined (__ia64__) # include "xc_core_ia64.h" +#elif defined (__powerpc__) +# include "xc_core_powerpc.h" #else # error "unsupported architecture" #endif diff --git a/tools/libxc/xc_core_powerpc.c b/tools/libxc/xc_core_powerpc.c new file mode 100644 index 0000000000..a29fdb83b3 --- /dev/null +++ b/tools/libxc/xc_core_powerpc.c @@ -0,0 +1,79 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Copyright (c) 2007 Isaku Yamahata + * VA Linux Systems Japan K.K. + * Copyright IBM Corp. 2007 + * + * Authors: Isaku Yamahata + * Hollis Blanchard + * + */ + +#include "xg_private.h" +#include "xc_core.h" + +int +xc_core_arch_auto_translated_physmap(const xc_dominfo_t *info) +{ + /* All PowerPC domU are autotranslated. */ + return 1; +} + +int +xc_core_arch_map_p2m(int xc_handle, xc_dominfo_t *info, + shared_info_t *live_shinfo, xen_pfn_t **live_p2m, + unsigned long *pfnp) +{ + /* All PowerPC domU are autotranslated. */ + errno = ENOSYS; + return -1; +} + +int +xc_core_arch_memory_map_get(int xc_handle, xc_dominfo_t *info, + shared_info_t *live_shinfo, + xc_core_memory_map_t **mapp, + unsigned int *nr_entries) +{ + xc_core_memory_map_t *map = NULL; + + map = malloc(sizeof(*map)); + if (!map) { + PERROR("Could not allocate memory"); + goto out; + } + + map->addr = 0; + map->size = info->max_memkb * 1024; + + *mapp = map; + *nr_entries = 1; + return 0; + +out: + free(map); + return -1; +} + +/* + * Local variables: + * mode: C + * c-set-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/tools/libxc/xc_core_powerpc.h b/tools/libxc/xc_core_powerpc.h new file mode 100644 index 0000000000..ce8aaf17c5 --- /dev/null +++ b/tools/libxc/xc_core_powerpc.h @@ -0,0 +1,57 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Copyright (c) 2007 Isaku Yamahata + * VA Linux Systems Japan K.K. + * + */ + +#ifndef XC_CORE_POWERPC_H +#define XC_CORE_POWERPC_H + +#define ELF_ARCH_DATA ELFDATA2MSB +#define ELF_ARCH_MACHINE EM_PPC64 + +struct xc_core_arch_context { + /* nothing */ +}; + +#define xc_core_arch_context_init(arch_ctxt) do {} while (0) +#define xc_core_arch_context_free(arch_ctxt) do {} while (0) +#define xc_core_arch_context_get(arch_ctxt, ctxt, xc_handle, domid) \ + (0) +#define xc_core_arch_context_dump(arch_ctxt, args, dump_rtn) (0) + +static inline int +xc_core_arch_context_get_shdr(struct xc_core_arch_context *arch_ctxt, + struct xc_core_section_headers *sheaders, + struct xc_core_strtab *strtab, + uint64_t *filesz, uint64_t offset) +{ + *filesz = 0; + return 0; +} + +#endif /* XC_CORE_POWERPC_H */ + +/* + * Local variables: + * mode: C + * c-set-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ -- 2.30.2